Determining additional features for a task entry based on a user habit

ABSTRACT

Methods and apparatus related to determining additional features for a user task entry of a user based on a user habit of the user. For example, one or more aspects of a user task entry of a user may be compared to one or more aspects of a user habit of the user to determine a correlation measure between the task entry and the user habit. If the correlation measure satisfies a threshold, one or more additional features of the user task entry may be determined based on the user habit. For example, the user habit may include one or more trigger indicators that indicate an actual entry or anticipated entry of the user into the user habit, and one or more of the trigger indicators may be utilized to determine task trigger indicators for the user task entry.

BACKGROUND

A user may have interest in creating one or more user task entriesrelated to tasks of the user and the user may utilize one or moreapplications to create the task entries. For example, a user may haveinterest in purchasing a product and a user task entry may be createdthat includes information related to purchasing the product.

SUMMARY

This specification is directed to methods and apparatus related todetermining additional features for a user task entry of a user based ona user habit of the user. For example, one or more aspects of a usertask entry of a user may be compared to one or more aspects of a userhabit of the user to determine a correlation measure between the taskentry and the user habit. If the correlation measure satisfies athreshold, one or more additional features of the user task entry may bedetermined based on the user habit. For example, the user habit mayinclude one or more trigger indicators that indicate an actual entry oranticipated entry of the user into the user habit, and one or more ofthe trigger indicators may be utilized to determine task triggerindicators for the user task entry.

In some implementations, a method is provided that includes the stepsof: identifying a user task entry of a user, the user task entryincluding an indication of: one or more task actions to be performed bythe user and one or more task interaction entities with which the userwill interact in performing the one or more task actions; identifying auser habit entry of the user, the user habit entry including anindication of: one or more trigger indicators indicating an actual entryor anticipated entry of the user into the user habit, and one or more ofhabit actions performed and habit interaction entities interacted withduring the user habit; determining a correlation measure between theuser task entry and the user habit entry, the correlation measure basedon comparing at least one of: the one or more task actions to the habitactions performed, and the one or more task interaction entities to thehabit interaction entities; and determining one or more additionalfeatures of the user task entry based on the user habit when thecorrelation measure satisfies a correlation measure threshold.

This method and other implementations of technology disclosed herein mayeach optionally include one or more of the following features.

The additional features of the user task entry may include one or moretask trigger indicators based on the trigger indicators of the userhabit entry. The method may further include the steps of: receiving useractivity data, the user activity data indicative of one or more of alocation of a computing device of the user and user actions via thecomputing device; determining whether the user activity data isindicative of one or more of the task trigger indicators; and providing,to at least one of the computing device and an additional computingdevice of the user, information related to the user task entry based onthe user activity data being indicative of one or more of the tasktrigger indicators. In some of those implementations, the method mayfurther include the step of determining one or more completion steps forthe user task entry, and wherein the step of providing the informationrelated to the user task entry may include providing the one or morecompletion steps.

The method may further include the step of: providing, to at least oneof the computing device and an additional computing device of the user,information related to the one or more additional features of the usertask entry.

The step of determining the correlation measure may include the stepsof: comparing the one or more task actions to the habit actionsperformed; and comparing the one or more task interaction entities tothe habit interaction entities.

The one or more task actions to be performed by the user may include afirst task action and a second task action, the second task action beingan alternative to the first task action; and wherein the one or moreadditional features of the user task entry may include a selection ofone of the first task action and the second task action based on the oneor more habit actions of the user habit. The one or more additionalfeatures of the user task entry may further include task triggerindicators based on the trigger indicators of the user habit.

The step of determining the correlation measure may include the stepsof: determining a task action collection to which the one or more taskactions belong and comparing the task action collection to the habitactions performed.

The step of determining the correlation measure may include the step of:determining a task entity collection to which the one or more taskinteraction entities belong and comparing the task entity collection tothe habit actions performed.

The method may further include the step of: modifying the user taskentry to include the one or more additional features.

Other implementations may include a non-transitory computer readablestorage medium storing instructions executable by a processor to performa method such as one or more of the methods described herein. Yetanother implementation may include a system including memory and one ormore processors operable to execute instructions, stored in the memory,to perform a method such as one or more of the methods described herein.

Particular implementations of the subject matter described hereindetermine a correlation measure between a user task entry and a userhabit based on comparing one or more aspects of the user task entry toone or more aspects of the user habit. Particular implementationsdetermine one or more additional features for a user task entry based ona user habit when the correlation measure satisfies a threshold. Theadditional features are new aspects of the user task entry that may bedetermined for the user task entry as described herein. Particularimplementations provide the user with information related to the usertask entry. The provided information and/or determining when to providethe user with the information may be based on the additional features ofthe user task entry that are determined based on the user habit.

It should be appreciated that all combinations of the foregoing conceptsand additional concepts discussed in greater detail herein arecontemplated as being part of the subject matter disclosed herein. Forexample, all combinations of claimed subject matter appearing at the endof this disclosure are contemplated as being part of the subject matterdisclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example environment in which additionalfeatures for a user task entry may be determined based on a user habit.

FIG. 2 is a representation of an example user task entry and an exampleuser habit entry.

FIG. 3 is a representation of an additional example user habit entry.

FIG. 4 is a representation of an additional example user task entry andan additional example user habit entry.

FIG. 5 is a flow chart illustrating an example method of determiningadditional features for a user task entry based on a user habit.

FIG. 6 is a flow chart illustrating an example method of providing auser with information related to a user task entry of the user.

FIG. 7 is an example of information related to a user task entry of theuser that may be provided to a user.

FIG. 8 is another example of information related to a user task entry ofthe user that may be provided to a user.

FIG. 9 illustrates a block diagram of an example computer system.

DETAILED DESCRIPTION

A user may have interest in completing a task and may utilize one ormore applications to create a user task entry related to the task.Additionally and/or alternatively, one or more documents or othercontent associated with a user may indicate an interest of the user incompleting a task. One or more components, such as a task system 130described herein, may create a user task entry for the user, orfacilitate creation of a user task entry for the user based on the oneor more documents or other content that indicates an interest of theuser in completing a task.

A user task entry may include certain information related to the tasksuch as one or more task actions and/or one or more task interactionentities as described herein. The included information may be based oninput from the user (e.g., typed, spoken, or other input) and/or theincluded information may be determined based on one or more documents orother content related to the user task entry (e.g., based on a documentutilized to create the task). Utilizing one or more techniques describedherein, additional features of the user task entry may be determinedbased on a user habit entry of the user. For example, a user task entrymay be determined to be related to a user habit entry of the user basedon a determined correlation measure between the user task entry and theuser habit entry. Information from the related user habit entry may thenbe utilized to determine the additional features for the user taskentry. As one example, one or more task trigger indicators for the usertask entry may be determined based on one or more trigger indicatorsthat are associated with the user habit entry.

As described herein, a user task entry may include an indication of oneor more task actions and an indication of one or more task interactionentities. A task action may be an action that a user has interest incompleting and/or having completed by one or more other users. Forexample, a task action may be “buy” and the user may have interest inbuying something and/or having another person buy something for theuser. A task interaction entity is an entity that is associated with thetask action. For example, a task may have a task action of “buy” and atask interaction entity of “bananas,” and the purpose of the task may befor the user to buy bananas.

In some implementations, an indication of the task action and/or thetask interaction entity in a task entry may include an entityidentifier. For example, an indication of the task action “buy” mayinclude an identifier of the entity associated with the action ofbuying. An entity identifier may be associated with an entity in one ormore databases, such as entity database 150. In some implementations, anindication of the task action and/or the task interaction entity in atask entry may additionally or alternatively include one or more termsassociated with the task action and/or the task interaction entity. Forexample, an indication of the task action “buy” may include the terms“buy” and/or “purchase”.

In some implementations, a user task entry may be associated with one ormore task completion steps. A task completion step includes one or morecompletion actions and may include one or more completion objects. Forexample, a task completion step may be “Travel to the mall,” where thecompletion action is “travel” and the completion object is “mall.” Insome implementations one or more task completion steps may be determinedbased on, for example, information that is associated with the userand/or the determined task, information form a related user habit entry,and/or additional information identified from one or more databases. Forexample, a user may submit a task of “Pay cell phone bill” and a taskwith a task action of “Pay” and a task interaction entity of “cell phonebill” may be determined based on the submitted task. The cellular phoneprovider of the user may be identified via additional information thatis associated with the user, such as emails of the user, phone contactsof the user, and/or browsing history of the user. Additional informationfrom an email may be utilized to associate a completion step of “Call555-555-5555” with the task. For example, a billing department phonenumber of “555-555-5555” may be identified from an email from theidentified cellular phone company of the user and utilized to associatea completion step of “Call 555-555-5555” with the user task entry.

In some implementations, information related to a user task entry (e.g.,completion steps for a task and/or other information related the task)may be provided to the user. For example, information related to theuser task entry may be provided based on one or more task triggerindicators of the task entry, such as task trigger indicators determinedbased on a related user habit. For example, a user may create a usertask entry to “Contact Bob,” a completion step of “Call 555-5555” may bedetermined based on identifying a contact number of “555-5555” for “Bob”in a contacts database of the user, and task trigger indicators may bedetermined based on a user habit related to the user task entry. Theuser may be provided with the task completion step of “Call 555-5555”and/or a notification to “Call Bob” based on the one or more tasktrigger indicators.

Referring to FIG. 1, a block diagram of an example environment isprovided in which additional features for a user task entry may bedetermined based on a user habit. The environment includes a computingdevice 105 of a user, a content database 120, a task system 130, a taskinformation system 140, and an entity database 150. The environment alsoincludes a communication network 101 that enables communication betweenvarious components of the environment. In some implementations thecommunication network 101 may include the Internet, one or moreintranets, and/or one or more bus subsystems. The communication network101 may optionally utilize one or more standard communicationstechnologies, protocols, and/or inter-process communication techniques.

The computing device 105 executes one or more applications and may be,for example, a desktop computer, a laptop computer, a cellular phone, asmartphone, a personal digital assistant (PDA), a tablet computer, anavigation system, a wearable computing device (e.g., glasses, watch,earpiece), or another computing device. The computing device 105includes memory for storage of data and software applications, aprocessor for accessing data and executing applications, and componentsthat facilitate communication over the communication network 101. Insome implementations, the computing device 105 may include hardware thatshares one or more characteristics with the example computer system thatis illustrated in FIG. 9. In some implementations, the one or moreapplications executable by the computing device 105 may include a taskapplication 110.

As discussed herein, user interactions with the computing device 105and/or one or more additional computing devices associated with the usermay optionally be utilized to determine a user task entry of the user,determine user habit entries of the user, and/or provide user activitydata of the user. Also, in implementations that provide the user withinformation related to a user task entry, the information may beprovided to the user via the computing device 105 and/or one or moreadditional computing devices associated with the user. The taskapplication 110 may include one or more applications that enable a userto create a user task entry and/or provide information that may beutilized to determine a user task entry of the user. In someimplementations the task application 110 may include, for example, ane-mail application, a calendar application, and/or a web browserexecutable on computing device 105. In some implementations, the taskapplication 110 may be an application that is dedicated to creating usertask entries. For example, a user may intend to create a user task entryand the user may utilize task application 110 to directly submitinformation to create the intended user task entry.

In some implementations, content database 120 may include one or morestorage mediums and may be utilized to store and/or access one or moreaspects of information described herein. For example, content database120 may be utilized by one or more components to store, modify, and/oraccess user task entries 122 and/or user habit entries 124. In someimplementations, the content database 120 may store user task entries122 and/or user habit entries 124 of multiple users, and, for eachentry, access to the entry may be allowed only for the user and/or oneor more other users or components authorized by the user such as tasksystem 130 and/or task information system 140. In some otherimplementations, the content database 120 may only store user taskentries 122 and/or user habit entries 124 for a single user.

In this specification, the term “database” will be used broadly to referto any collection of data. The data of the database does not need to bestructured in any particular way, or structured at all, and it can bestored on storage devices in one or more locations. Thus, for example,the database may include multiple collections of data, each of which maybe organized and accessed differently. Also, in this specification, theterm “entry” will be used broadly to refer to any mapping of a pluralityof associated information items. A single entry need not be present in asingle storage device and may include pointers or other indications ofinformation items that may be present on other storage devices. Forexample, an entry may include multiple nodes mapped to one another, witheach node including an identifier of an entity or other information itemthat may be present in another data structure and/or another storagemedium.

A user task entry 122 may include certain information related to thetask such as one or more task actions and/or one or more taskinteraction entities. For example, with reference to FIG. 2, an exampleuser task entry 122A includes a task action 1222A of “Fix” and a taskinteraction entity 1224A of “Faucet”.

In some implementations, one or more aspects of the included informationof a user task entry may be based on input from the user (e.g., typed,spoken, or other input). For example, the user task entry 122A may becreated based on input provided by the user via computing device 105 tocreate a task entry. For example, the user may input the phrase “fixfaucet” via task application 110. Based on the inputted phrase, the tasksystem 130 may determine “fix” is a task action and “faucet” is a taskinteraction entity. For example, in some implementations the task system130 may utilize one or more natural language processing techniques toidentify the term “fix” is a verb and the term “faucet” is the object ofthe verb. Also, for example, in some implementations the task system 130may utilize the entity database 150 to determine that the term “fix” isan alias mapped to an entity associated with a “task action” collectionof entities and/or to determine that the term “faucet” is an aliasmapped to an entity associated with a “task object” collection ofentities.

In some implementations, one or more aspects of the included informationof a user task entry may additionally and/or alternatively be based onone or more documents or other content related to the user task entry.For example, the user may submit one or more search queries via thecomputing device 105 that relate to fixing a faucet and/or view one ormore internet documents that relate to fixing a faucet. Based on thesearch queries and/or viewed internet documents, the task system 130 maydetermine “fix” is a task action and “faucet” is a task interactionentity that should be associated with the user. For example, in someimplementations the task system 130 may receive and/or identify one ormore entities associated with the queries and/or internet documents anddetermine, based on those entities, that the user has interest incompleting a task to fix a faucet. For example, each of the queries anddocuments may be associated with an entity related to “fixing” items andeach of the queries and documents may be associated with an entityrelated to “faucets”. The task system 130 may automatically create auser task entry based on such information, or may prompt the user beforecreating the user task entry.

A user habit entry 124 may include certain information related to ahabit of the user such as one or more habit actions, one or more habitinteraction entities, and/or one or more habit trigger indicators. Ahabit action may be one or more actions that a user performs during ahabit. For example, a habit action may be “call” for a habit related toa user action of calling, or a habit action may be “contact” for a habitrelated to user actions of calling, e-mailing, and/or instant messaging.A habit interaction entity is an entity that is associated with thehabit action. For example, a habit may have a habit action of “call” anda habit interaction entity of “bob”, “contacts”, and/or “familymembers”, for a habit related to a user habit of calling one or moreindividuals.

Habit trigger indicators identify one or more conditions that indicatean actual entry or anticipated entry of the user into the user habit.For example, a habit related to a user habit of calling one or moreindividuals, may have a habit trigger indicator of the user beinglocated in a vehicle (e.g., as indicated by location data of a computingdevice of the user and/or pairing of a computing device of the user witha computing device of a vehicle). Also, for example, a habit related toa user habit of calling one or more individuals, may have a habittrigger indicator related to the time since the user last entered thehabit. For example, the longer it has been since the user last enteredthe habit, the more indicative the habit trigger indicator may be of theuser entering the user habit. As described herein, one or more triggerindicators may optionally be associated with information indicative ofhow strongly correlated they are to actual and/or anticipated entry ofthe user into the user habit. For example, one or more triggerindicators may be identified as required trigger indicators (the habitwon't be determined to be entered without the conditions of the triggerindicators being present) and/or one or more trigger indicators may beweighted more heavily than other trigger indicators (e.g., the presenceof a more heavily weighted first trigger indicator alone may be moreindicative of actual or anticipated entry into the user habit than thepresence of a less heavily weighted second trigger indicator alone).

In some implementations, an indication of the habit action, habitinteraction entity, and/or habit trigger indicator in a user habit entrymay include an entity identifier. For example, an indication of thehabit action “buy” may include an identifier of the entity associatedwith the action of buying. Also, for example, an indication of thetrigger indicator of being at a certain location may include anidentifier of an entity associated with the location. In someimplementations, an indication of the habit action, a habit interactionentity, and/or a habit trigger indicator in a user habit entry mayadditionally or alternatively include one or more associated more termsand/or other information. For example, an indication of the habit action“buy” may include the terms “buy” and/or “purchase”. Also, for example,an indication of the trigger indicator of the user being located in avehicle may include information related to determining the user is inthe vehicle such as an identifier of the computing device of thevehicle, an indicator of user activity data that may indicate the useris in the vehicle, etc.

With reference to FIG. 2, an example user habit entry 124A includes ahabit action 1242A of “Maintenance Actions”, a habit interaction entity1244A of “Home Items”, and habit trigger indicators 1246A1-A4 of“Weekend”, “Home Improvement Store Trip”, “Time Since Last Habit Entry”,and “DIY Websites”. The habit action 1242A of “Maintenance Actions”identifies a collection of action entities that relate to maintenanceactions, such as, for example, action entities related to the actions of“fixing”, “repairing”, “improving”, etc. The habit interaction entity1244A of “Home Items” identifies a collection of interaction entitiesrelated to a house such as, for example, interaction entities related to“faucets”, “dishwashers”, “air conditioners”, “furnaces”, “doors”, etc.

The trigger indicators 1246A1-A4 of “Weekend”, “Home Improvement StoreTrip”, “Time Since Last Habit Entry”, and “DIY Websites” identify one ormore conditions that indicate an actual entry or anticipated entry ofthe user into the user habit. For example, the trigger indicator 1246A1of “Weekend” may identify a condition of it being a weekend day andactual or anticipated entry into the user habit may be more likely to bedetermined if it is a weekend day. Also, for example, the triggerindicator 1246A2 of “Home Improvement Store Trip” may identify acondition related to determining a trip of the user to one of one ormore home improvement stores and actual or anticipated entry into theuser habit may be more likely to be determined if the user visits a homeimprovement store (optionally, either on the weekend or within apredetermined temporal period of the weekend). Also, for example, thetrigger indicator 1246A3 of “Time Since Last Habit Entry” may identify acondition related to determining a likelihood the user will enter theuser habit based on the time since the user last entered the habit ofthe user habit entry. For example, actual or anticipated entry into theuser habit may be more likely to be determined the longer it has beensince the user last entered the habit of the user habit entry. Also, forexample, the trigger indicator 1246A4 of “DIY Websites” may identify acondition related to determining visits by the user to one of one ormore do it yourself websites (optionally, either on the weekend orwithin a predetermined temporal period of the weekend).

In some implementations, one or more aspects of the included informationof a user habit entry may be based on input from the user. For example,the user habit entry 122A may be created based on input provided by theuser via computing device 105 to define a user habit. For example, theuser may input or select, via task application 110 and/or otherapplication, the collection of habit actions “maintenance actions” as anaction of the habit and the collection of habit interaction entities of“home items” as a habit interaction entity of the habit. Also, forexample, the user may input or select, via task application 110 and/orother application, the habit action of “fix” and, based on the term“fix”, the task system 130 may utilize the entity database 150 todetermine that the term “fix” is an alias mapped to an entity associatedwith a “maintenance actions” collection of entities and/or mapped toentities associated with other maintenance actions (e.g. repair,improve). The task system 130 may associate such mapped entities withthe user habit. Also, for example, the user may input or select, viatask application 110 and/or other application, trigger indicators toassociate with inputted or selected habit actions and habit interactionentities. For example, the user may input that a trigger indicator ofpairing of the mobile phone of the user with a vehicle of the user is arequired trigger indicator for the user habit.

In some implementations, one or more aspects of the included informationof a user habit entry may additionally and/or alternatively be based onone or more determinations by the task system 130 and/or other componentbased on data associated with the user. For example, the task system 130may utilize location data associated with the user and/or documents orother content associated with the user to determine one or more userhabits of the user and create user habit entries related to determineduser habits. For example, location data and/or other content associatedwith the user may indicate repeated user performance of one or morehabit actions and/or interaction with one or more habit interactionentities in combination with the same or similar habit triggerindicators. Based on such repeated user performance and interaction incombination with same or similar trigger indicators, the task system 130may create a user habit entry. The task system 130 may automaticallycreate a user habit entry based on such information, or may prompt theuser before creating the user habit entry.

The task system 130 may determine additional features of a user taskentry based on a user habit of the user. For example, the correlationmeasure engine 132 may determine a correlation measure between the usertask entry and a user habit entry of the user and the task system 130may determine a user task entry is related to a user habit based on thecorrelation measure. For example, the task system 130 may determine auser task entry is related to a user habit entry if the correlationmeasure between the two satisfies a threshold. The additional taskfeatures engine 134 of the task system 130 may utilize information fromthe related user habit to determine one or more additional features forthe user task entry. As one example, one or more task trigger indicatorsfor the user task entry may be determined based on one or more triggerindicators that are associated with the user habit entry. For example,one or more of the trigger indicators that are associated with the userhabit may be mapped to the user task entry and/or one or more triggerindicators for the user habit entry may be used to determine new triggerindicators for the user task entry that are based on, but not the sameas, the trigger indicators of the user habit entry. In someimplementations, one or more task trigger indicators for the user taskentry that are determined based on one or more trigger indicators thatare associated with the user habit entry may supplement one or more tasktrigger indicators already associated with the user task entry.

Referring again to FIG. 2, an example of correlation measures betweenthe user task entry 122A and the user habit entry 124A is described. Thecorrelation measure engine 132 may determine the correlation measurebased on a first similarity score S1 between the task action 1222A andthe habit actions 1242A, and a second similarity score S2 between thetask interaction entity 1224A and the habit interaction entities 1244A.For example, the correlation measure engine 130 may determine the firstsimilarity score S1 based on one or more measures of similarity betweenthe task action 1222A of “Fix” and the habit actions 1242A of“Maintenance Actions”. Also, for example, the correlation measure engine132 may determine the second similarity score S2 based on one or moremeasures of similarity between the task interaction entity 1224A of“Faucet” and the habit interaction entities 1244A of “Home Items”. Oneor more techniques may be utilized to determine the correlation measurebased on the first similarity score S1 and the second similarity scoreS2. For example, a weighted and/or unweighted average of the similarityscores S1 and S2 may be utilized. Also, for example, a sum of thesimilarity scores S1 and S2 may additionally and/or alternatively beutilized.

In some implementations, the similarity scores S1 and S2 may be, forexample, a number (e.g., numbers from 0 to 1), the magnitude of which isindicative of the degree of similarity. For example, 0.8 may beindicative of a higher degree of similarity than 0.5. In someimplementations, the similarity scores may be a true/false value (e.g.,a 0 or a 1), with the true value indicating at least a threshold levelof similarity and the false value indicating a lack of at least athreshold level of similarity.

One or more techniques may be utilized to determine the similarityscores S1 and S2. For example, the correlation measure engine 132 mayutilize entity database 150 to determine that the task action 1222A of“Fix” is a member of the collection of habit actions “MaintenanceActions” 1242A. For example, the entity database 150 may include amapping (e.g., data defining an association) between entities and one ormore attributes and/or other related entities. For example, the taskaction 1222A of “Fix” may be mapped in the entity database 150 as amember of the collection of habit actions “Maintenance Actions” 1242A.Based on the mapping, and optionally a weighting of the indicatedmapping (e.g., as indicated by metadata associated with the mapping),the similarity score S1 may be determined. Also, for example, the taskinteraction entity 1224A of “Faucet” may be mapped in the entitydatabase 150 as a member of the collection of habit interaction entities“Home Items” 1244A. Based on the mapping, and optionally a weighting ofthe indicated mapping, the similarity score S2 may be determined.

The additional task features engine 134 of the task system 130 mayutilize information from the user habit 124A to determine one or moreadditional features for the user task entry 122A when the correlationmeasure determined by the correlation measure engine 132 satisfies athreshold. For example, one or more task trigger indicators for the usertask entry 122A may be determined based on one or more of the triggerindicators 1246A1-A3. For example, a pointer to one or more of thetrigger indicators 1246A1-A4 may be added to the user task entry 122A toadd the trigger indicators 1246A1-A4 to the user task entry 122A. Also,for example, one or more of the trigger indicators 1246A1-A4 may beutilized to determine a more particularized trigger indicator for theuser task entry 122A. For example, the trigger indicator 1246A1 of“Weekend” may identify a condition of it being a weekend day and, basedon the trigger indicator 1246A1, the additional task features system 134may determine the next upcoming weekend day as a trigger indicator ofthe user task entry 122A. Also, for example, the trigger indicator1246A4 of “DIY Websites” may identify a condition related to determiningvisits by the user to one of one or more do it yourself websites and,based on the trigger indicator 1246A4 and the task interaction entity1224A “Faucet”, the additional task features system 134 may determine avisit to a webpage of a do it yourself website, wherein the webpageincludes the term “faucet”, as a trigger indicator of the user taskentry 122A.

In some implementations, a user habit entry may include multiple habitactions, multiple habit interaction entities, and/or multiple triggerindicators. In some of those implementations, weightings may optionallybe associated with one or more of the multiple habit actions,interaction entities, and/or trigger indicators. Each weighting may begenerally indicative of the strength of the association of therespective item to the user habit entry. The weightings may be utilized,for example, in determining a correlation measure between the user taskentry and the user habit entry, determining which information of arelated user habit entry to associate with a task entry, and/or indetermining how to weight determined information for the user taskentry.

For example, with reference to FIG. 3, a representation of an additionalexample user habit entry 124B includes multiple habit interactionentities 1244B1-B3 and multiple trigger indicators 1246B1-B4. The habitentry 124B also includes a single habit action 1242B. Each of the habitinteraction entities 1224B1-B3 and trigger indicators 1246B1-B4 includesan associated weighting. For example, the “Family Members” habitinteraction entity 1244B1 includes an associated weighting of 0.6. Also,for example, the “Pairing With Vehicle Computing Device” triggerindicator 1246B1 includes an associated weighting of “required”,indicating the condition associated with the trigger indicator must bepresent to indicate actual or anticipated entry into the user habit. InFIG. 3, greater in value numerical weightings represent strongerassociations to the user habit 124B than lesser in value numericalweightings. For example, the “Family Members” habit interaction entity1244B1 (weighting of 0.6) is more strongly associated with the userhabit 124B than the “Other Individuals” habit interaction entity 1244B2(weighting of 0.3).

In some implementations, the weightings of one or more of the habitinteraction entities 1244B1-B3 and/or multiple trigger indicators1246B1-B4 may be utilized in determining correlation measures. Forexample, for a user task entry having a task action of “call” and a taskinteraction entity of “mom”, the correlation measure engine 132 maydetermine a correlation measure based on a similarity score between thetask action of “call” and the user habit action 1242B of “call” andbased on a similarity score between the task interaction entity of “mom”and the habit interaction entities 1224B1-B3. For example, the user taskinteraction entity of “mom” may be determined to be a family member(e.g., based on contacts of the user), and determined to be similar tothe user habit interaction entity 1224B1 of “Family Members”, but notsimilar to the other user habit interaction entities 1244B2-B3. Due tothe relatively high weighting (0.6) of the user habit interaction entity1244B3 of “Family Members”, the similarity score between the taskinteraction entity of “mom” and the habit interaction entities 1224B1-B3may be indicative of a strong level of similarity.

As another example, for a user task entry having a task action of “call”and a task interaction entity of “Restaurant 1”, the correlation measureengine 132 may determine a correlation measure based on a similarityscore between the task action of “call” and the user habit action 1242Bof “call” and based on a similarity score between the task interactionentity of “Restaurant 1” and the habit interaction entities 1224B1-B3.For example, the user task interaction entity of “Restaurant 1” may bedetermined to be a business (e.g., based on a mapping in entity database150), and determined to be similar to the user habit interaction entity1224B3 of “Businesses”, but not similar to the other user habitinteraction entities 1244B1-B2. Due to the relatively low weighting(0.1) of the user habit interaction entity 1244B3 of “Businesses”, thesimilarity score between the task interaction entity of “Restaurant 1”and the habit interaction entities 1224B1-B3 may be indicative of a lowlevel of similarity. For example, the low level of similarity mayprevent the correlation measure from satisfying a threshold and preventthe user habit entry 124B from being associated with the user taskentry.

As yet another example, for a user task entry having a task triggerindicator of “on my way home from work”, the correlation measure engine132 may determine a correlation measure based at least in part on asimilarity score between the task trigger indicator of “on my way homefrom work” and the task trigger indicators 1224B1-B4. For example, thetask trigger indicator of “on my way home from work” may be determinedto be similar to the user habit trigger indicator 1246B2 of “LeavingWork” (e.g., based on natural language processing techniques todetermine similarity), but not similar to the other user habit triggerindicators 1246B1, B3, and B4. Accordingly, the weighting of 0.3associated with the user habit trigger indicator 1246B2 may be utilizedin determining the similarity score.

Also, as described, in some implementations one or more weightingsassociated with information of a user habit entry may be utilized indetermining which information of the user habit entry to utilize indetermining additional features of a related user task entry. Forexample, the additional task features engine 134 may determine which ofhabit trigger indicators 1246B1-B4 is utilized in determining one ormore task trigger indicators for an associated user task entry based onthe weightings of the habit trigger indicators 1246B1-B4. For example,an additional feature of the user task entry may be determined to be atask trigger indicator that maps directly to the habit trigger indicator1246B1 based on the habit trigger indicator 1246B1 being associated witha “required” weighting. Also, for example, user habit trigger indicator1246B2 “Leaving Work” may not be utilized as a task trigger indicatorfor the user task entry and/or may be assigned a lower weighting (e.g.,the same or similar weighting as in the user habit entry 124B) for theuser task entry based on its relatively low weighting in the user habitentry 124B.

As yet another example, with reference to FIG. 4, a user task entry 122Cmay be determined to have a correlation measure relative to a user habitentry 124C that satisfies a correlation measure threshold. For example,the correlation measure engine 132 may determine the correlation measurebased on similarity measure S3 between task action 1222C and habitactions 1242C1 and/or 1242C2 and/or based on similarity measure S4between task interaction entity 1224C and habit interaction entities1244C. For example, task action 1222C of “contact” identifies acollection of task actions such as, for example, “call”, “email”,“text”, “contact via social media”, etc. Task action 1222C may bedetermined to have a high degree of similarity to habit actions 1242C1and C2 based on the habit actions 1242C1 and C2 being members of thecollection identified by task action 1222C.

In some implementations, the one or more additional features determinedfor the user task entry 122C based on the user habit entry 124C mayinclude weighting and/or selecting one or more of the members of thecollection of task actions identified by the task action 1222C of“contact”. For example, based on the habit actions 1242C1 and C2 of“call” and “email” being the only habit actions listed in user habitentry 124C, the additional task features engine 134 may select “call”and “email” as the task actions for the user task entry 122C (while notselecting other task actions such as “text”). Also, for example, basedon the habit actions 1242C1 and C2 of “call” and “email” being the onlyhabit actions listed in user habit entry 124C, the additional taskfeatures engine 134 may weight “call” and “email” more heavily (e.g.,based on their weightings in the user habit entry 124C) as task actionsfor the user task entry 122C (while weighting less heavily other taskactions identified by “contact” such as “text”). Also, for example,based on the habit action 1242C1 of “call” being associated with aweighting (0.8) that is greater than the weighting (0.2) of “email”, theadditional task features engine 134 may select “call” as the only taskaction for the user task entry 122C (while not selecting other taskactions of the “contact” collection). In some implementations, onemember of a collection of task actions may be selected to the exclusionof any other members when the weighting of that member in the user habitentry satisfies a threshold, such as a threshold relative to one or moreother weightings in the user habit entry associated with other members.

In some implementations, weightings may be provided between informationof a user habit entry and utilized in determining which information ofthe user habit entry to utilize in determining additional features of arelated user task entry. The weighting between two or more pieces ofinformation of a user habit entry is indicative of a strength ofcorrelation between such pieces of information. The weighting betweeninformation of a user habit entry may be in addition to, or as analternative to weightings associated with the information itself. Forexample, with reference to FIG. 4, weightings may be provided betweeneach of the trigger indicators 1246C1-C4. For example, trigger indicator1246C1 may have a weighting with respect to trigger indicator 1246C2that indicates those two trigger indicators have a high degree ofcorrelation to one another (e.g., the trigger indicators often bothoccur together in relation to the user habit). Based on such high degreeof correlation, the additional features task engine 134 may determineone or more trigger indicators for the user habit entry based on both ofthe trigger indicators 1246C1 and C2, and not determine triggerindicators based on just one of the trigger indicators 1246C1 and C2.

As another example, with continuing reference to FIG. 4, habit action1242C1 of “Call” may have a strong weighting to trigger indicators1246C1-C3, but a weaker weighting to trigger indicator 1246C4. Based onsuch weightings, in some implementations in which the additional taskfeatures engine 134 weights “call” more heavily and/or selects “call” asthe only task action for the user task entry 122C based on the userhabit entry 124C, the additional task features engine 134 may determineone or more task trigger indicators for the user task entry 122C basedmore strongly on, or exclusively on, trigger indicators 1246C1-C3.

In some implementations, task system 130 may determine one or more taskcompletion steps to associate with a task. In some implementations, thetask system 130 may determine a task completion step based oninformation that is associated with a task. For example, the task system130 may identify a task of “Buy bananas” and determine that a taskcompletion step of “Go to the grocery store” may be an appropriate taskcompletion step for the task based on identifying an association between“Buy bananas” and a completion step of going to a grocery store. In someimplementations, task system 130 may determine a task completion stepfor a task based on identifying associations between one or more taskactions and/or interaction entities of a task and the task completionstep in one or more database, such as entity database 150. In someimplementations, task system 130 may determine a task completion stepfor a task based on a related user habit entry. For example, wheremultiple independent sets of potential task completion steps aredetermined for a task, one of the sets may be selected or weighted moreheavily based on similarity between the set and one or more aspects of arelated user habit entry. For example, the sole task completion step ofa set may be “go to the home improvement store” and may have a highdegree of similarity with a trigger indicator of “home improvement storetrip” of a related user habit entry based on, for example, similarity ofterms and/or entities referenced by each. Based on the high degree ofsimilarity, the set may be selected for association with the user taskentry.

In some implementations, task information system 140 may provideinformation related to a user task entry to a user based on one or moretrigger indicators associated with the user task entry, such as one ormore task trigger indicators determined based on a related user habitentry. The indication provided to the user may include, for example, areminder related to the user task entry (e.g., a notification in thetask application 110, a popup via the computing device 110, highlightingof the task entry in the task application) and/or one or more completionsteps associated with the task entry.

Generally, the task trigger indicators identify one or more conditionsthat indicate it may be desirable to provide information to the userthat is related to the user task entry. The task trigger indictors maybe compared to received user activity data and/or other data todetermine if the received user activity data and/or other data isindicative of one or more of the task trigger indicators. When the datais indicative of a threshold number (e.g., one, two, or all) of the tasktrigger indicators, the indication related to the user task entry may beprovided.

Received user activity data is indicative of one or more of a locationof a computing device of the user and/or user actions via the computingdevice. For example, received user activity data may include dataindicative of a location of the computing device 105 such as data basedon GPS, Wi-Fi, and/or cellular tower indicated locations of thecomputing device 105. Also, for example, received user activity data mayinclude data indicative of search queries submitted via the computingdevice 105 (e.g., queries local to the computing device 105 and/orsubmitted to a search engine), documents visited via the computingdevice 105 (e.g., documents local to the computing device 105 and/oraccessed via the Internet), entities contacted via the computing device105 (e.g., e-mailed, called, instant messaged), applications executedvia the computing device, etc. Received user activity data may beprovided directly by the computing device 105 and/or by anothercomponent with which the computing device 105 communicates (e.g., asearch system to which the computing device 105 submitted a searchquery).

As one example, with reference to FIG. 4, task trigger indicators may bedetermined for the user task entry 122C based on the trigger indicators1246C1-C4 of the related habit entry 124C. For example, in someimplementations the trigger indicators 1246C1-C4 may be utilized as thetask trigger indicators. The trigger indicator 1246C1 of “Weekday” mayidentify a condition of it being a week day and information related tothe user task entry may be more likely to be provided if it is a weekday. Also, for example, the trigger indicator 1246C2 of “At Work” mayidentify a condition related to determining the user is likely at work(e.g., based on location data of a computing device of the user, useraccess of a work computing device) and information related to the usertask entry may be more likely to be provided if the user is at work.Also, for example, the trigger indicator 1246C3 of “Between 11:00 A.M.and 1:00 P.M.” may identify a condition related to it being between thehours of 11:00 A.M. and 1:00 P.M. and information related to the usertask entry may be more likely to be provided if it is between thosehours. Also, for example, the trigger indicator 1246C4 of “NavigationalSearch” may identify a condition related to determining one or moresearch queries issued by the user that are navigational search queries(e.g., those seeking a particular website) related to a business entityand information related to the user task entry may be more likely to beprovided if such navigational search queries are issued. As describedherein, one or more trigger indicators may optionally be tied to oneanother. For example, trigger indicators 1246C2 and/or 1246C4 mayoptionally be tied to temporal indicators 1246C1 and/or 1246C3. Forexample, the trigger indicator 1246C4 of “Navigational Search” mayidentify a condition related to determining one or more search queriesissued by the user on a weekday and/or between 11:00 A.M. and 1:00 P.M.that are navigational search queries related to a business entity.

Task information system 140 may provide information related to the usertask entry 122C when the conditions associated with one or more tasktrigger indicators have been satisfied. For example, continuing with theprevious example, task information system 140 may provide informationrelated to the user task entry 122C when all of the conditionsassociated with one or more task trigger indicators have been satisfied.For example, if it is a weekday between the hours of 11:00 A.M. and 1:00P.M., and user activity data indicates the user is at work and hasissued a navigational search related to a business entity, informationrelated to the user task entry 122C may be provided.

In some implementations, the task information system 140 may provideinformation related to the user task entry 122C when the conditionsassociated with less than all of the trigger indicators have beensatisfied. For example, as described herein, in some implementations oneor more of the task trigger indicators may be indicated as requiredand/or have one or more weightings associated therewith. For example,the task trigger indicator corresponding to trigger indicator 1246C2 maybe “required”, the task trigger indicators corresponding to triggerindicators 1246C1 and 1246C3 may have a first weighting, and the tasktrigger indicator corresponding to trigger indicators 1246C4 may have asecond weighting that is greater than the first weighting. In someimplementations of such an example, information may be provided whenconditions are satisfied for the task trigger indicator corresponding totrigger indicator 1246C2 and are satisfied for either: the task triggerindicator corresponding to trigger indicator 1246C4 standing alone;and/or the task trigger indicators corresponding to trigger indicators1246C1 and 1246C3.

FIG. 7 is an example of information related to a user task entry of auser that may be provided to the user when the conditions associatedwith one or more task trigger indicators have been satisfied (e.g., asdescribed in the immediately preceding examples). The information ispresented in a display 700 that may be displayed on computing device105. For example, the task information system 140 may provideinformation related to the information and/or the display to computingdevice 105 to enable computing device 105 to display the information tothe user in display 700. The display 700 includes the text “ContactBusiness 1” and “You have an open task to contact Business 1”, whichincludes information based on the user task entry 122C (based on taskaction 1222C and task interaction entity 1224C). The display 700 alsoincludes the text “Click here to call Business 1”, which also includesinformation based on the user task entry 122C. For example, the taskaction of “call” may be selected as a preferred task action member ofthe collection of task actions identified by “contact” task action 1222Cbased on the weighting of habit action 1242C1 as described herein. Also,for example, the text “Click here to call Business 1” may be identifiedbased on an optional completion step that may be associated with theuser task entry and optionally selected based on the weighting of habitaction 1242C1 as described herein. The text “Click here to call Business1” includes selectable text “here” that may be selected by a user toassist in calling Business 1 (e.g., selection may auto populate thenumber for Business 1 in a phone dialing application and/or auto dialthe number for Business 1). The phone number for Business 1 may beidentified, for example, based on a mapping of “Business 1” to a phonenumber in entity database 150.

FIG. 8 is another example of information related to a user task entry ofthe user that may be provided to a user. The information may be providedto the user, for example, after the user task entry 122C has beencreated and related to the user habit entry 124C. The providedinformation enables the user to confirm or modify task triggerindicators determined for the user task entry based on the user habitentry 124C. The information is presented in a display 800 that may bedisplayed on computing device 105. For example, the task informationsystem 140 may provide information related to the information and/or thedisplay to computing device 105 to enable computing device 105 todisplay the information to the user in display 800. The display 800includes the text “Contact Business 1” and “Would you like to bereminded at work next week during lunch of your task to contact Business1”, which includes information based on the user task entry 122C,including information related to the task trigger indicators determinedbased on the trigger indicators 1246C1-C.

For example, “at work” may be identified based on a task triggerindicator corresponding to trigger indicator 1246C2. Also, for example,“next week” may be identified based on a task trigger indicatorcorresponding to trigger indicator 1246C1. Also, for example, “duringlunch” may be identified based on a task trigger indicator correspondingto trigger indicator 1246C3. The display 800 presents the user with theoption to select “yes” to affirmatively set the task trigger indicatorsdetermined for the user task entry 122C, or to select “No” toaffirmatively not set the determined task trigger indicators. Thedisplay 800 also presents the user with the option to “Choose OtherConditions for Reminder”, which may be selected by the user to enablethe user to set alternative task trigger indicators.

Additional and/or alternative information related to a user task entrymay be provided, and may be provided with alternative display parametersthan those illustrated in the examples of FIG. 7 and FIG. 8.

In situations in which the systems discussed herein collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current geographic location), or to controlwhether and/or how to receive content from the content server that maybe more relevant to the user. Also, certain data may be treated in oneor more ways before it is stored or used, so that personal identifiableinformation is removed. For example, a user's identity may be treated sothat no personal identifiable information can be determined for theuser, or a user's geographic location may be generalized wheregeographic location information is obtained (such as to a city, ZIPcode, or state level), so that a particular geographic location of auser cannot be determined. Thus, the user may have control over howinformation is collected about the user and/or used.

The task system 130, the task information system 140, and/or one or moreadditional components of the example environment of FIG. 1 may eachinclude memory for storage of data and software applications, aprocessor for accessing data and executing applications, and componentsthat facilitate communication over a network. In some implementations,the task system 130 and the task information system 140 may includehardware that shares one or more characteristics with the examplecomputer system that is illustrated in FIG. 9. The operations performedby one or more components of the example environment may optionally bedistributed across multiple computer systems. For example, the stepsperformed by task system 130 may be performed via one or more computerprograms running on one or more servers in one or more locations thatare coupled to each other through a network.

Referring to FIG. 5, a flow chart is illustrated of an example method ofdetermining additional features for a user task entry based on a userhabit. Other implementations may perform the steps in a different order,omit certain steps, and/or perform different and/or additional stepsthan those illustrated in FIG. 5. For convenience, aspects of FIG. 5will be described with reference to one or more components of FIG. 1that may perform the method such as the task system 130.

At step 500, a task entry of a user is identified. In someimplementations, the user task entry is identified from content database120 by a component that shares one or more characteristics with tasksystem 130. The user task entry includes certain information related toa task such as one or more task actions and/or task interactionentities. For example, with reference to FIG. 2, an example user taskentry 122A includes a task action 1222A of “Fix” and a task interactionentity 1224A of “Faucet”. As described herein, one or more aspects ofthe included information of a user task entry may be based on input fromthe user and/or may be based on one or more documents or other contentassociated with the user.

At step 505, a habit entry of the user is identified. In someimplementations, the user habit entry is identified from contentdatabase 120 by a component that shares one or more characteristics withtask system 130. The user habit entry includes certain informationrelated to a habit of the user such as one or more habit actions, habitinteraction entities, and/or habit trigger indicators. For example, withreference to FIG. 2, an example user habit entry 124A includes habitactions 1242A of “Maintenance Actions” habit interaction entities 1244Aof “Home Items”, and trigger indicators 1246A1-A4 of “Weekend”, “HomeImprovement Store Trip”, “Time Since Last Habit Entry”, and “DIYWebsites”. The habit action 1242A of “Maintenance Actions” identifies acollection of action entities that relate to maintenance actions, suchas, for example, action entities related to the actions of “fixing”,“repairing”, “improving”, etc. The habit interaction entity 1244A of“Home Items” identifies a collection of interaction entities related toa house such as, for example, interaction entities related to “faucets”,“dishwashers”, “air conditioners”, “furnaces”, “doors”, etc.

As described herein, one or more aspects of the included information ofa user habit entry may be based on input from the user and/or may bebased on one or more determinations by the task system 130 and/or othercomponent based on data associated with a user. In some implementations,the user habit entry indicates repeated user performance of one or morehabit actions and/or interaction with one or more habit interactionentities in combination with the same or similar trigger indicators. Insome of those implementations, the repeated user performance of one ormore habit actions may be repeated performance of related habit actionssuch as repeated performance of habit actions that are all members of ahabit action collection. Also, in some of those implementations, therepeated user interaction with one or more habit interaction entitiesmay be repeated interaction with related habit interaction entities suchas repeated interaction with habit interaction entities that are allmembers of a habit interaction entity collection. Accordingly, the userhabit entry may indicate a grouping of related (but one or more beingdistinct), past user actions and/or user interaction entities based ondata associated with a user such as past user task entries of the userand/or past user activity data of the user.

At step 510, a correlation measure between the task entry and the userhabit entry is determined. In some implementations, the correlationmeasure engine 132 of the task system 130 determines the correlationmeasure. In some implementations, the correlation measure may bedetermined based on one or more similarity scores between one or moretask actions of the user task entry and one or more habit actions of theuser habit entry. In some implementations, the correlation measure mayadditionally and/or alternatively be determined based on one or moresimilarity scores between one or more task interaction entities of theuser task entry and one or more habit interaction entities of the userhabit entry. In some implementations, the correlation measure mayadditionally and/or alternatively be determined based on one or moresimilarity scores between other information of the user task entry andthe user habit entry such as task trigger indicators of the user taskentry and trigger indicators of the user habit entry.

As one example, the correlation measure engine 132 may determine thecorrelation measure based on a first similarity score S1 between thetask action 1222A and the habit actions 1242A, and a second similarityscore S2 between the task interaction entity 1224A and the habitinteraction entities 1244A. For example, the correlation measure engine130 may determine the first similarity score S1 based on one or moremeasures of similarity between the task action 1222A and the habitactions 1242A and may determine the second similarity score S2 based onone or more measures of similarity between the task interaction entity1224A and the habit interaction entities 1244A. One or more techniquesmay be utilized to determine the correlation measure based on the firstsimilarity score S1 and the second similarity score S2.

At step 515, one or more additional features of the user task entry aredetermined based on the user habit entry if the correlation measuresatisfies a threshold. In some implementations, the task system 130 maydetermine a user task entry is related to a user habit entry if thecorrelation measure between the two satisfies a threshold. In someimplementations, the additional task features engine 134 of the tasksystem 130 may utilize information from the related user habit entry todetermine one or more additional features for the user task entry. Thedetermined additional features of the user task entry may be associatedwith the user task entry. For example, a user task entry in contentdatabase 120 may be modified to include an identifier or otherinformation item related to determined additional features.

As one example, one or more task trigger indicators for the user taskentry 122A may be determined based on one or more of the triggerindicators 1246A1-A3. For example, a pointer to one or more of thetrigger indicators 1246A1-A4 may be added to the user task entry 122A toadd the trigger indicators 1246A1-A4 to the user task entry 122A. Also,for example, one or more of the trigger indicators 1246A1-A4 may beutilized to determine a more particularized trigger indicator for theuser task entry 122A. For example, the trigger indicator 1246A1 of“Weekend” may identify a condition of it being a weekend day and, basedon the trigger indicator 1246A1, the additional task features system 134may determine the next upcoming weekend day as a trigger indicator ofthe user task entry 122A. Also, for example, the trigger indicator1246A4 of “DIY Websites” may identify a condition related to determiningvisits by the user to one of one or more do it yourself websites and,based on the trigger indicator 1246A4 and the task interaction entity1224A “Faucet”, the additional task features system 134 may determine avisit to a webpage of a do it yourself website, wherein the webpageincludes the term “faucet”, as a trigger indicator of the user taskentry 122A.

In some implementations, a user habit entry may include multiple habitactions, multiple habit interaction entities, and/or multiple triggerindicators. In some of those implementations, weightings may optionallybe associated with one or more of the multiple habit actions,interaction entities, and/or trigger indicators. Each weighting may begenerally indicative of the strength of the association of therespective item to the user habit entry. The weightings may be utilized,for example, in determining a correlation measure between the user taskentry and the user habit entry, determining which information of arelated user habit entry to associate with a task entry, and/or indetermining how to weight determined information for the user taskentry.

Referring to FIG. 6, a flow chart is illustrated of an example method ofproviding a user with information related to a user task entry of theuser. Other implementations may perform the steps in a different order,omit certain steps, and/or perform different and/or additional stepsthan those illustrated in FIG. 6. For convenience, aspects of FIG. 6will be described with reference to one or more components of FIG. 1that may perform the method such as the task information system 140.

At step 600, one or more task trigger indicators for a task entry of auser are identified. In some implementations, the task triggerindicators are identified from content database 120 by a component thatshares one or more characteristics with task information system 140. Insome implementations, one or more of the task trigger indicators may bedetermined based on a user habit entry that is related to the user taskentry as described herein. The task trigger indicators identify one ormore conditions that indicate it may be desirable to provide informationto the user that is related to the user task entry. As described herein,one or more of the conditions of some task trigger indicators may relateto user activities as indicated by received user activity data and oneor more of the conditions of some task trigger indicators may relate toother data that is not dependent on user activities (e.g., a triggerindicator based on a date or time).

At step 605, user activity data is received. Received user activity datais indicative of one or more of a location of a computing device of theuser and/or user actions via the computing device. In someimplementations, the task information system 140 may receive the useractivity data. Received user activity data may be provided directly bythe computing device 105 and/or by another component with which thecomputing device 105 communicates (e.g., content database 120 and/or asearch system to which the computing device 105 submitted a searchquery).

At step 610, it is determined whether the user activity data isindicative of one or more of the task trigger indicators. In someimplementations, the task information system 140 may determine whetherthe user activity data is indicative of one or more of the task triggerindicators. As one example, with reference to FIG. 4, task triggerindicators may be determined for the user task entry 122C based on thetrigger indicators 1246C1-C4 of the related habit entry 124C. Forexample, in some implementations the trigger indicators 1246C1-C4 may beutilized as the task trigger indicators. For example, the triggerindicator 1246C2 of “At Work” may identify a condition related todetermining the user is likely at work and task information system 140may determine, based on received user activity data, if the user islikely at work. For example, the task information system 140 maydetermine the user is likely at work based on received user activitydata that indicates location data of a computing device of the userand/or user access of a work computing device. Also, for example, thetrigger indicator 1246C4 of “Navigational Search” may identify acondition related to determining one or more search queries issued bythe user that are navigational search queries related to a businessentity and task information system 140 ma determine, based on receiveduser activity data, if the user has issued a navigational search queryrelated to a business entity. For example, the task information system140 may determine a navigational search query related to a businessentity based on received use activity data that is annotated withinformation indicating it is navigational and indicating it is directedto a business entity.

As described herein, one or more trigger indicators may optionally betied to one another. For example, trigger indicators 1246C2 and/or1246C4 may optionally be tied to temporal indicators 1246C1 and/or1246C3. For example, the trigger indicator 1246C4 of “NavigationalSearch” may identify a condition related to determining one or moresearch queries issued by the user on a weekday and/or between 11:00 A.M.and 1:00 P.M. that are navigational search queries related to a businessentity. Also, as described herein, one or more trigger indicators mayinclude one or more conditions that are based on data besides useractivity data. For example, the trigger indicator 1246C1 of “Weekday”may identify a condition of it being a week day and the triggerindicator 1246C3 of “Between 11:00 A.M. and 1:00 P.M.” may identify acondition related to it being between the hours of 11:00 A.M. and 1:00P.M.

At step 615, the user is provided with information related to the taskbased on the user activity data being indicative of one or more of thetask trigger indicators. In some implementations, task informationsystem 140 may provide information related to the user task entry whenthe conditions associated with one or more task trigger indicators havebeen satisfied. As described herein, the conditions of one or more ofthe task trigger indicators may be based on other data besides useractivity data.

As one example, continuing with the previous example, task informationsystem 140 may provide information related to the user task entry 122Cwhen all of the conditions associated with one or more triggerindicators have been satisfied. For example, if it is a weekday betweenthe hours of 11:00 A.M. and 1:00 P.M., and user activity data indicatesthe user is at work and has issued a navigational search related to abusiness entity, information related to the user task entry 122C may beprovided. In some implementations, the task information system 140 mayprovide information related to the user task entry 122C when theconditions associated with less than all of the trigger indicators havebeen satisfied.

FIG. 9 is a block diagram of an example computer system 910. Computersystem 910 typically includes at least one processor 914 whichcommunicates with a number of peripheral devices via bus subsystem 912.These peripheral devices may include a storage subsystem 924, including,for example, a memory subsystem 926 and a file storage subsystem 928,user interface input devices 922, user interface output devices 920, anda network interface subsystem 916. The input and output devices allowuser interaction with computer system 910. Network interface subsystem916 provides an interface to outside networks and is coupled tocorresponding interface devices in other computer systems.

User interface input devices 922 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touchscreen incorporated into the display, audio inputdevices such as voice recognition systems, microphones, and/or othertypes of input devices. In general, use of the term “input device” isintended to include all possible types of devices and ways to inputinformation into computer system 910 or onto a communication network.

User interface output devices 920 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices. The display subsystem may include a cathode ray tube (CRT), aflat-panel device such as a liquid crystal display (LCD), a projectiondevice, or some other mechanism for creating a visible image. Thedisplay subsystem may also provide non-visual display such as via audiooutput devices. In general, use of the term “output device” is intendedto include all possible types of devices and ways to output informationfrom computer system 910 to the user or to another machine or computersystem.

Storage subsystem 924 stores programming and data constructs thatprovide the functionality of some or all of the modules describedherein. For example, the storage subsystem 924 may include the logic toperform one or more of the steps of FIG. 5 and/or FIG. 6.

These software modules are generally executed by processor 914 alone orin combination with other processors. Memory 926 used in the storagesubsystem can include a number of memories including a main randomaccess memory (RAM) 930 for storage of instructions and data duringprogram execution and a read only memory (ROM) 932 in which fixedinstructions are stored. A file storage subsystem 928 can providepersistent storage for program and data files, and may include a harddisk drive, a floppy disk drive along with associated removable media, aCD-ROM drive, an optical drive, or removable media cartridges. Themodules implementing the functionality of certain implementations may bestored by file storage subsystem 928 in the storage subsystem 924, or inother machines accessible by the processor(s) 914.

Bus subsystem 912 provides a mechanism for letting the variouscomponents and subsystems of computer system 910 communicate with eachother as intended. Although bus subsystem 912 is shown schematically asa single bus, alternative implementations of the bus subsystem may usemultiple busses.

Computer system 910 can be of varying types including a workstation,server, computing cluster, blade server, server farm, or any other dataprocessing system or computing device. Due to the ever-changing natureof computers and networks, the description of computer system 910depicted in FIG. 9 is intended only as a specific example for purposesof illustrating some implementations. Many other configurations ofcomputer system 910 are possible having more or fewer components thanthe computer system depicted in FIG. 9.

While several implementations have been described and illustratedherein, a variety of other means and/or structures for performing thefunction and/or obtaining the results and/or one or more of theadvantages described herein may be utilized, and each of such variationsand/or modifications is deemed to be within the scope of theimplementations described herein. More generally, all parameters,dimensions, materials, and configurations described herein are meant tobe exemplary and that the actual parameters, dimensions, materials,and/or configurations will depend upon the specific application orapplications for which the teachings is/are used. Those skilled in theart will recognize, or be able to ascertain using no more than routineexperimentation, many equivalents to the specific implementationsdescribed herein. It is, therefore, to be understood that the foregoingimplementations are presented by way of example only and that, withinthe scope of the appended claims and equivalents thereto,implementations may be practiced otherwise than as specificallydescribed and claimed. Implementations of the present disclosure aredirected to each individual feature, system, article, material, kit,and/or method described herein. In addition, any combination of two ormore such features, systems, articles, materials, kits, and/or methods,if such features, systems, articles, materials, kits, and/or methods arenot mutually inconsistent, is included within the scope of the presentdisclosure.

The invention claimed is:
 1. A method implemented by one or moreprocessors, comprising: creating a task entry for a user in one or morestorage devices, wherein creating the task entry is via an applicationexecuting on a computing device of the user and is based on userinterface input provided by the user indicating an interest of the userin performing a task, and wherein the task entry created based on theuser interface input indicates: one or more task actions to be performedby the user during the task, and one or more task interaction entitieswith which the user will interact in performing the one or more taskactions; prior to the user performing the task: identifying, from one ormore of the storage devices, a habit entry for the user, wherein thehabit entry is based on past computing device interactions of the user,and wherein the habit entry indicates: one or more trigger indicatorsindicating an actual entry or anticipated entry of the user into a userhabit, and one or more of habit actions performed and habit interactionentities interacted with during the user habit, the one or more habitinteraction entities including a given habit interaction entity thatidentifies a collection of entities; determining a correlation measurebetween the task entry and the habit entry, the correlation measurebased on comparing at least one of: the one or more task actions to beperformed to the habit actions performed, and the one or more taskinteraction entities to the habit interaction entities, whereincomparing the one or more task interaction entities to the habitinteraction entities comprises: determining that at least one of the oneor more task interaction entities is related to the given habitinteraction entity based on determining that the at least one of the oneor more task interaction entities is a member of the collection ofentities identified by the given habit interaction entity; determiningthat the task entry is associated with the user habit of the habit entryin response to the correlation measure satisfying a threshold; based ondetermining that the task entry is associated with the user habit of thehabit entry: modifying the task entry to include at least one tasktrigger indicator that is based on one or more of the trigger indicatorsof the habit entry, the at least one task trigger indicator identifyingone or more conditions for providing information to the user that isrelated to the user task entry, wherein the one or more conditions ofthe at least one task trigger indicator comprise: one or more locations,or one or more computing interactions; in response to determining thatdata generated by the computing device of the user or an additionalcomputing device of the user indicates that the user is in one of thelocations or has performed one of the computing interactions: providing,for presentation to the user via the computing device of the user or theadditional computing device of the user, a notification related to thetask entry, the notification recommending the user perform at least oneof the task actions with at least one of the task interaction entitiesof the task entry.
 2. The method of claim 1, wherein the additionalcomputing device of the user is a vehicle computing device, wherein theat least one task trigger indicator further includes one or more furtherconditions comprising identifying pairing of the computing device of theuser with the vehicle computing device, and wherein the method furthercomprises: determining that the data generated by the computing deviceor the vehicle computing device indicates the pairing of the computingdevice of the user with the vehicle computing device, and whereinproviding the notification related to the task entry is further inresponse to determining that the data indicates the pairing of thecomputing device of the user with the vehicle computing device.
 3. Themethod of claim 1, wherein the at least one trigger indicator furtherincludes one or more further conditions comprising identifying a timesince the user last entered the user habit, and wherein the datagenerated by the computing device or the additional computing device ofthe user indicates the time since the user last entered the user habitsatisfies a temporal threshold.
 4. The method of claim 3, whereinproviding the notification related to the task entry is further inresponse to determining the time since the user last entered the userhabit satisfies a temporal threshold.
 5. The method of claim 1, whereinproviding the notification related to the task entry comprises at leastone of: providing a popup via a display on the computing device of theuser or the additional computing of the user, or highlighting the taskentry in an application displayed on the computing device of the user orthe additional computing device of the user.
 6. The method of claim 1further comprising: prompting the user to establish the habit entry ofthe user along with the providing of the notification related to thetask entry of the user; and in response to prompting the user toestablish the habit entry, receiving an indication to establish thehabit entry based on further user interface input that is provided bythe user and directed to the notification.
 7. The method of claim 6,wherein the indication to establish the habit entry based on the furtheruser interface input that is provided by the user and directed to thenotification includes an indication of: affirmatively setting the habitentry; or altering one or more of the trigger indicators associated withthe habit entry or one or more of the habit actions associated with thehabit entry.
 8. The method of claim 1, wherein each of the one or moretask actions includes a collection of related task actions, and whereineach of the one or more task interaction entities includes a collectionof related task interaction entities.
 9. The method of claim 8, furthercomprising: identifying the collection of the related task actions basedon the one or more task actions of the task entry; selecting, based onthe one or more of habit actions performed and from the collection ofthe related task actions, a given task action for completing the taskentry; and wherein providing the notification recommending the userperform at least one of the task actions with at least one of the taskinteraction entities of the task entry comprises: providing thenotification recommending the user perform the given task action with atleast one of the task interaction entities.
 10. The method of claim 9further comprising: identifying the collection of the related taskinteraction entities based on the one or more task interaction entitieswith which the user will interact in performing the given task action;selecting, based on the habit interaction entities interacted withduring the user habit and from the collection of the related taskinteraction entities, a given task interaction entity for completing thetask entry; and wherein providing the notification recommending the userperform the given task action with at least one of the task interactionentities of the task entry comprises: providing the notificationrecommending the user perform the given task action with the given taskinteraction entity.
 11. A method implemented by one or more processors,comprising: identifying a task entry of a user, the task entry beingcreated based on identifying an interest of the user in performing atask and including an indication of: one or more task actions to beperformed by the user during the task, and one or more task interactionentities with which the user will interact in performing the one or moretask actions; prior to the user performing the task: identifying a habitentry for the user, wherein the habit entry is generated based on pastinteractions of the user with the computing device, and wherein thehabit entry includes an indication of: one or more trigger indicatorsindicating an actual entry or anticipated entry of the user into a userhabit, and one or more of habit actions performed and habit interactionentities interacted with during the user habit, the one or more habitinteraction entities including a given habit interaction entity thatidentifies a collection of entities; determining a similarity measurebetween the task entry and the habit entry, the similarity measure basedon comparing at least one of: the one or more task actions to beperformed to the habit actions performed, and the one or more taskinteraction entities to the habit interaction entities, whereincomparing the one or more task interaction entities to the habitinteraction entities comprises: determining that at least one of the oneor more task interaction entities is related to the given habitinteraction entity based on determining that the at least one of the oneor more task interaction entities is a member of the collection ofentities identified by the given habit interaction entity; in responseto determining the similarity measure satisfies a threshold: associatingthe task entry with the user habit of the habit entry in one or moredatabases; based on associating the task entry with the user habit ofthe habit entry: determining one or more additional features of the taskentry based on the associated user habit, wherein determining the one ormore additional features includes determining one or more task triggerindicators of the task entry based on one or more of the triggerindicators of the habit entry, each of the one or more task triggerindicators identifying one or more conditions for providing informationto the user that is related to the user task entry, wherein the one ormore conditions of the one or more task trigger indicators comprise: oneor more locations, or one or more computing interactions, andassociating the one or more additional features with the task entry inone or more of the databases; receiving activity data generated by thecomputing device of the user, the activity data including one or more ofthe locations and one or more of the computing interactions; and inresponse to determining that the received activity data generated by thecomputing device of the user or an additional computing device of theuser indicates that the user is in one of the locations or has performedone of the computing interactions: providing, for presentation to theuser via the computing device of the user or the additional computingdevice of the user, a notification related to the task entry, thenotification recommending the user perform at least one of the taskactions with at least one of the task interaction entities of the taskentry.
 12. The method of claim 11, wherein the additional computingdevice of the user is a vehicle computing device, wherein the triggerindicators further include one or more further conditions comprisingidentifying pairing of the computing device of the user with the vehiclecomputing device, and wherein the method further comprises: determiningthat the received activity data generated by the computing device or thevehicle computing device indicates the pairing of the computing deviceof the user with the vehicle computing device, and wherein providing thenotification related to the task entry is further in response todetermining that the received activity data indicates the pairing of thecomputing device of the user with the vehicle computing device.
 13. Themethod of claim 11, wherein the trigger indicators further include oneor more further conditions comprising a time since the user last enteredthe user habit, and wherein the received activity data generated by thecomputing device or the additional computing device of the userindicates the time since the user last entered the user habit satisfiesa temporal threshold.
 14. The method of claim 13, wherein providing thenotification related to the task entry is further in response todetermining the time since the user last entered the user habitsatisfies a temporal threshold.
 15. The method of claim 11, furthercomprising: prompting the user to establish the habit entry of the useralong with the providing of the notification related to the task entryof the user; and in response to prompting the user to establish thehabit entry, receiving an indication to establish the habit entry basedon further user interface input that is provided by the user anddirected to the notification.
 16. The method of claim 15, wherein theindication to establish the habit entry based on the further userinterface input that is provided by the user and directed to thenotification includes an indication of: affirmatively setting the habitentry; or altering one or more of the trigger indicators associated withthe habit entry or one or more of the habit actions associated with thehabit entry.
 17. The method of claim 11, wherein each of the one or moretask actions includes a collection of related task actions, and whereineach of the one or more task interaction entities includes a collectionof related task interaction entities.
 18. The method of claim 17,further comprising: identifying the collection of the related taskactions based on the one or more task actions of the task entry;selecting, based on the one or more of habit actions performed and fromthe collection of the related task actions, a given task action forcompleting the task entry; and wherein providing the notificationrecommending the user perform at least one of the task actions with atleast one of the task interaction entities of the task entry comprises:providing the notification recommending the user perform the given taskaction with at least one of the task interaction entities.
 19. A system,comprising: a first computing device of a user configured to: create atask entry for the user in one or more storage devices, wherein creatingthe task entry is via an application executing on the first computingdevice of the user and is based on user interface input provided by theuser indicating an interest of the user in performing a task, andwherein the user task entry created based on the user interface inputindicates: one or more task actions to be performed by the user duringthe task, and one or more task interaction entities with which the userwill interact in performing the one or more task actions; prior to theuser performing the task: identify, from one or more of the storagedevices, a habit entry for the user, wherein the habit entry is based onpast interactions of the user with the first computing device, andwherein the habit entry indicates: one or more trigger indicatorsindicating an actual entry or anticipated entry of the user into a userhabit, and one or more of habit actions performed and habit interactionentities interacted with during the user habit, the one or more habitinteraction entities including a given habit interaction entity thatidentifies a collection of entities; determine a correlation measurebetween the task entry and the habit entry, the correlation measurebased on comparing at least one of: the one or more task actions to beperformed to the habit actions performed, and the one or more taskinteraction entities to the habit interaction entities, whereincomparing the one or more task interaction entities to the habitinteraction entities comprises: determining that at least one of the oneor more task interaction entities is related to the given habitinteraction entity based on determining that the at least one of the oneor more task interaction entities is a member of the collection ofentities identified by the given habit interaction entity; determinethat the task entry is associated with the user habit of the habit entryin response to the correlation measure satisfying a threshold; based ondetermining that the task entry is associated with the user habit of thehabit entry: modify the task entry to include at least one task triggerindicator that is based on one or more of the trigger indicators of thehabit entry, the task trigger indicator identifying one or moreconditions for providing information to the user that is related to theuser task entry, wherein the one or more conditions of the at least onetask trigger indicator comprise: one or more locations, or one or morecomputing interactions; a second computing device of the user configuredto: prior to the user performing the task: in response to determiningthat data generated by the first computing device indicates that theuser is in one of the locations or has performed one of the computinginteractions: provide, for presentation to the user via a display of thesecond computing device, a notification related to the task entry, thenotification recommending the user perform at least one of the taskactions with at least one of the task interaction entities of the taskentry via the second computing device.